package com.stefan.framework.protocol;


import com.stefan.framework.protocol.dubbo.DubboProtocol;
import com.stefan.framework.protocol.http.HttpProtocol;

public class ProtocolFactory {

    public static Protocol getProtocol() {
        //通过设置jvm参数或者系统参数来选择协议，也可以通过SPI技术实现使用哪个协议
        //dubbo就是利用SPI技术来实现的，默认使用dubbo协议，程序员可以自定义自己的协议
        String name = System.getProperty("protocolName");

        if (name == null || name.equals("")) name = "http";
        switch (name) {
            case "http":
                return new HttpProtocol();
            case "dubbo":
                return new DubboProtocol();
            default:
                break;
        }
        return new HttpProtocol();
    }
}
